# data_loader/dataset.py
import torch
from torch.utils.data import Dataset
import random

class CFDataset(Dataset):
    """
    用于协同过滤的PyTorch Dataset。
    它只存储正样本对 (user, positive_item)。
    负采样将在训练循环中动态进行，以提高效率。
    """
    def __init__(self, users, pos_items):
        self.users = users
        self.pos_items = pos_items

    def __len__(self):
        return len(self.users)

    def __getitem__(self, idx):
        return self.users[idx], self.pos_items[idx]